// SSR Trace - reflections on gun
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Wed Dec 18 07:45:06 2019
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Input
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Output
cs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[2], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_buffer (uint,uint,uint,uint) t0
dcl_resource_texturecube (float,float,float,float) t1
dcl_uav_typed_texture2darray (float,float,float,float) u0
dcl_input vThreadID.xy
dcl_temps 18
dcl_thread_group 8, 8, 1
dcl_resource_texture2d (float,float,float,float) t125
dcl_resource_texture1d (float,float,float,float) t120
ld_indexable(texture2d)(float,float,float,float) r16.xyzw, l(0, 0, 0, 0), t125.xyzw
ld_indexable(texture1d)(float,float,float,float) r17.xyzw, l(0, 0, 0, 0), t120.xyzw

ieq r0.x, cb0[1].x, l(1)
if_nz r0.x
  round_ne r0.x, cb0[0].z
  ftou r0.x, r0.x
  switch r0.x
    case l(0)
    case l(1)
    case l(2)
    mov r0.x, l(0)
    break
    case l(3)
    mov r0.x, l(0.100000)
    break
    case l(4)
    mov r0.x, l(0.550000)
    break
    case l(5)
    mov r0.x, l(1.000000)
    break
    default
    mov r0.x, l(1.000000)
    break
  endswitch
else
  mov r0.x, l(0)
endif
round_ne r0.y, cb0[0].x
ftou r0.y, r0.y
ult r0.yz, vThreadID.xxyx, r0.yyyy
and r0.y, r0.z, r0.y
if_nz r0.y
  utof r0.yz, vThreadID.xxyx
  add r0.yz, r0.yyzy, l(0.000000, 0.500000, 0.500000, 0.000000)
  mul r0.yz, r0.yyzy, cb0[0].yyyy
  mad r1.xz, r0.yyzy, l(2.000000, 0.000000, 2.000000, 0.000000), l(-1.000000, 0.000000, -1.000000, 0.000000)
  ge r0.y, l(0.000000), r0.x
  if_nz r0.y
    mov r2.yz, -r1.zzxz
    mov r2.x, l(1.000000)
    sample_l_indexable(texturecube)(float,float,float,float) r2.xyzw, r2.xyzx, t1.xyzw, s0, l(0.000000)
    mov r3.xy, vThreadID.xyxx
    mov r3.zw, l(0,0,0,0)
    store_uav_typed u0.xyzw, r3.xyzw, r2.xyzw
    mov r1.y, l(-1.000000)
    mov r1.w, -r1.z
    sample_l_indexable(texturecube)(float,float,float,float) r2.xyzw, r1.ywxy, t1.xyzw, s0, l(0.000000)
    mov r3.xy, vThreadID.xyxx
    mov r3.zw, l(0,0,1,1)
    store_uav_typed u0.xyzw, r3.xyzw, r2.xyzw
    mov r2.xz, r1.xxzx
    mov r2.y, l(1.000000)
    sample_l_indexable(texturecube)(float,float,float,float) r3.xyzw, r2.xyzx, t1.xyzw, s0, l(0.000000)
    mov r4.xy, vThreadID.xyxx
    mov r4.zw, l(0,0,2,2)
    store_uav_typed u0.xyzw, r4.xyzw, r3.xyzw
    sample_l_indexable(texturecube)(float,float,float,float) r3.xyzw, r1.xywx, t1.xyzw, s0, l(0.000000)
    mov r4.xy, vThreadID.xyxx
    mov r4.zw, l(0,0,3,3)
    store_uav_typed u0.xyzw, r4.xyzw, r3.xyzw
    mov r2.w, -r1.z
    sample_l_indexable(texturecube)(float,float,float,float) r2.xyzw, r2.xwyx, t1.xyzw, s0, l(0.000000)
    mov r3.xy, vThreadID.xyxx
    mov r3.zw, l(0,0,4,4)
    store_uav_typed u0.xyzw, r3.xyzw, r2.xyzw
    mul r0.yzw, r1.xxwy, l(0.000000, -1.000000, 1.000000, 1.000000)
    sample_l_indexable(texturecube)(float,float,float,float) r2.xyzw, r0.yzwy, t1.xyzw, s0, l(0.000000)
    mov r3.xy, vThreadID.xyxx
    mov r3.zw, l(0,0,5,5)
    store_uav_typed u0.xyzw, r3.xyzw, r2.xyzw
  else
    ge r0.y, r0.x, l(1.000000)
    if_nz r0.y
      mov r2.xy, -r1.zxzz
      mov r2.zw, l(0,0,1.000000,-1.000000)
      dp3 r0.y, r2.xyzx, r2.xyzx
      rsq r0.y, r0.y
      mul r3.yzw, r0.yyyy, r2.xxyz
      ld_indexable(buffer)(uint,uint,uint,uint) r0.y, l(12, 12, 12, 12), t0.yxzw
      ld_indexable(buffer)(uint,uint,uint,uint) r4.y, l(13, 13, 13, 13), t0.yxzw
      ld_indexable(buffer)(uint,uint,uint,uint) r4.z, l(14, 14, 14, 14), t0.yzxw
      ld_indexable(buffer)(uint,uint,uint,uint) r4.w, l(15, 15, 15, 15), t0.yzwx
      ld_indexable(buffer)(uint,uint,uint,uint) r0.z, l(16, 16, 16, 16), t0.yzxw
      ld_indexable(buffer)(uint,uint,uint,uint) r5.y, l(17, 17, 17, 17), t0.yxzw
      ld_indexable(buffer)(uint,uint,uint,uint) r5.z, l(18, 18, 18, 18), t0.yzxw
      ld_indexable(buffer)(uint,uint,uint,uint) r5.w, l(19, 19, 19, 19), t0.yzwx
      ld_indexable(buffer)(uint,uint,uint,uint) r0.w, l(20, 20, 20, 20), t0.yzwx
      ld_indexable(buffer)(uint,uint,uint,uint) r6.y, l(21, 21, 21, 21), t0.yxzw
      ld_indexable(buffer)(uint,uint,uint,uint) r6.z, l(22, 22, 22, 22), t0.yzxw
      ld_indexable(buffer)(uint,uint,uint,uint) r6.w, l(23, 23, 23, 23), t0.yzwx
      ld_indexable(buffer)(uint,uint,uint,uint) r7.x, l(24, 24, 24, 24), t0.xyzw
      ld_indexable(buffer)(uint,uint,uint,uint) r7.y, l(25, 25, 25, 25), t0.yxzw
      ld_indexable(buffer)(uint,uint,uint,uint) r7.z, l(26, 26, 26, 26), t0.yzxw
      ld_indexable(buffer)(uint,uint,uint,uint) r7.w, l(27, 27, 27, 27), t0.yzwx
      ld_indexable(buffer)(uint,uint,uint,uint) r8.x, l(28, 28, 28, 28), t0.xyzw
      ld_indexable(buffer)(uint,uint,uint,uint) r8.y, l(29, 29, 29, 29), t0.yxzw
      ld_indexable(buffer)(uint,uint,uint,uint) r8.z, l(30, 30, 30, 30), t0.yzxw
      ld_indexable(buffer)(uint,uint,uint,uint) r8.w, l(31, 31, 31, 31), t0.yzwx
      ld_indexable(buffer)(uint,uint,uint,uint) r9.x, l(32, 32, 32, 32), t0.xyzw
      ld_indexable(buffer)(uint,uint,uint,uint) r9.y, l(33, 33, 33, 33), t0.yxzw
      ld_indexable(buffer)(uint,uint,uint,uint) r9.z, l(34, 34, 34, 34), t0.yzxw
      ld_indexable(buffer)(uint,uint,uint,uint) r9.w, l(35, 35, 35, 35), t0.yzwx
      ld_indexable(buffer)(uint,uint,uint,uint) r10.x, l(36, 36, 36, 36), t0.xyzw
      ld_indexable(buffer)(uint,uint,uint,uint) r10.y, l(37, 37, 37, 37), t0.yxzw
      ld_indexable(buffer)(uint,uint,uint,uint) r10.z, l(38, 38, 38, 38), t0.yzxw
      mad r4.x, r7.z, l(-0.333333343), r0.y
      mad r5.x, r8.z, l(-0.333333343), r0.z
      mad r6.x, r9.z, l(-0.333333343), r0.w
      mov r3.x, l(1.000000)
      dp4 r11.x, r4.xyzw, r3.xyzw
      dp4 r11.y, r5.xyzw, r3.xyzw
      dp4 r11.z, r6.xyzw, r3.xyzw
      mul r12.xyzw, r3.yzzw, r3.wyzz
      dp4 r13.x, r7.xyzw, r12.xyzw
      dp4 r13.y, r8.xyzw, r12.xyzw
      dp4 r13.z, r9.xyzw, r12.xyzw
      mul r0.y, r3.y, r3.y
      mad r0.y, r3.w, r3.w, -r0.y
      add r3.xyz, r11.xyzx, r13.xyzx
      mad r0.yzw, r10.xxyz, r0.yyyy, r3.xxyz
      max r3.xyz, r0.yzwy, l(0.000000, 0.000000, 0.000000, 0.000000)
      mov r11.xy, vThreadID.xyxx
      mov r11.zw, l(0,0,0,0)
      mov r3.w, l(1.000000)
      store_uav_typed u0.xyzw, r11.xyzw, r3.xyzw
      mov r0.y, l(-1.000000)
      mul r0.zw, r1.zzzx, l(0.000000, 0.000000, -1.000000, 1.000000)
      dp3 r2.z, r0.yzwy, r0.yzwy
      rsq r2.z, r2.z
      mul r3.yzw, r0.zzwy, r2.zzzz
      mov r3.x, l(1.000000)
      dp4 r11.x, r4.xyzw, r3.xyzw
      dp4 r11.y, r5.xyzw, r3.xyzw
      dp4 r11.z, r6.xyzw, r3.xyzw
      mul r12.xyzw, r3.yzzw, r3.wyzz
      dp4 r13.x, r7.xyzw, r12.xyzw
      dp4 r13.y, r8.xyzw, r12.xyzw
      dp4 r13.z, r9.xyzw, r12.xyzw
      mul r2.z, r3.y, r3.y
      mad r2.z, r3.w, r3.w, -r2.z
      add r3.xyz, r11.xyzx, r13.xyzx
      mad r3.xyz, r10.xyzx, r2.zzzz, r3.xyzx
      max r3.xyz, r3.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
      mov r11.xy, vThreadID.xyxx
      mov r11.zw, l(0,0,1,1)
      mov r3.w, l(1.000000)
      store_uav_typed u0.xyzw, r11.xyzw, r3.xyzw
      mov r1.y, l(1.000000)
      dp3 r2.z, r1.xyzx, r1.xyzx
      rsq r2.z, r2.z
      mul r3.yzw, r1.yyzx, r2.zzzz
      mov r3.x, l(1.000000)
      dp4 r11.x, r4.xyzw, r3.xyzw
      dp4 r11.y, r5.xyzw, r3.xyzw
      dp4 r11.z, r6.xyzw, r3.xyzw
      mul r12.xyzw, r3.yzzw, r3.wyzz
      dp4 r13.x, r7.xyzw, r12.xyzw
      dp4 r13.y, r8.xyzw, r12.xyzw
      dp4 r13.z, r9.xyzw, r12.xyzw
      mul r2.z, r3.y, r3.y
      mad r2.z, r3.w, r3.w, -r2.z
      add r3.xyz, r11.xyzx, r13.xyzx
      mad r3.xyz, r10.xyzx, r2.zzzz, r3.xyzx
      max r3.xyz, r3.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
      mov r11.xy, vThreadID.xyxx
      mov r11.zw, l(0,0,2,2)
      mov r3.w, l(1.000000)
      store_uav_typed u0.xyzw, r11.xyzw, r3.xyzw
      dp3 r2.z, r0.yzwy, r0.yzwy
      rsq r2.z, r2.z
      mul r3.yzw, r0.yyzw, r2.zzzz
      mov r3.x, l(1.000000)
      dp4 r11.x, r4.xyzw, r3.xyzw
      dp4 r11.y, r5.xyzw, r3.xyzw
      dp4 r11.z, r6.xyzw, r3.xyzw
      mul r12.xyzw, r3.yzzw, r3.wyzz
      dp4 r13.x, r7.xyzw, r12.xyzw
      dp4 r13.y, r8.xyzw, r12.xyzw
      dp4 r13.z, r9.xyzw, r12.xyzw
      mul r0.y, r3.y, r3.y
      mad r0.y, r3.w, r3.w, -r0.y
      add r3.xyz, r11.xyzx, r13.xyzx
      mad r3.xyz, r10.xyzx, r0.yyyy, r3.xyzx
      max r3.xyz, r3.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
      mov r11.xy, vThreadID.xyxx
      mov r11.zw, l(0,0,3,3)
      mov r3.w, l(1.000000)
      store_uav_typed u0.xyzw, r11.xyzw, r3.xyzw
      mov r1.w, r0.z
      dp3 r0.y, r1.xywx, r1.xywx
      rsq r0.y, r0.y
      mul r3.yzw, r0.yyyy, r1.wwyx
      mov r3.x, l(1.000000)
      dp4 r11.x, r4.xyzw, r3.xyzw
      dp4 r11.y, r5.xyzw, r3.xyzw
      dp4 r11.z, r6.xyzw, r3.xyzw
      mul r12.xyzw, r3.yzzw, r3.wyzz
      dp4 r13.x, r7.xyzw, r12.xyzw
      dp4 r13.y, r8.xyzw, r12.xyzw
      dp4 r13.z, r9.xyzw, r12.xyzw
      mul r0.y, r3.y, r3.y
      mad r0.y, r3.w, r3.w, -r0.y
      add r3.xyz, r11.xyzx, r13.xyzx
      mad r0.yzw, r10.xxyz, r0.yyyy, r3.xxyz
      max r3.xyz, r0.yzwy, l(0.000000, 0.000000, 0.000000, 0.000000)
      mov r11.xy, vThreadID.xyxx
      mov r11.zw, l(0,0,4,4)
      mov r3.w, l(1.000000)
      store_uav_typed u0.xyzw, r11.xyzw, r3.xyzw
      dp3 r0.y, r2.xywx, r2.xywx
      rsq r0.y, r0.y
      mul r2.yzw, r0.yyyy, r2.xxwy
      mov r2.x, l(1.000000)
      dp4 r3.x, r4.xyzw, r2.xyzw
      dp4 r3.y, r5.xyzw, r2.xyzw
      dp4 r3.z, r6.xyzw, r2.xyzw
      mul r4.xyzw, r2.yzzw, r2.wyzz
      dp4 r5.x, r7.xyzw, r4.xyzw
      dp4 r5.y, r8.xyzw, r4.xyzw
      dp4 r5.z, r9.xyzw, r4.xyzw
      mul r0.y, r2.y, r2.y
      mad r0.y, r2.w, r2.w, -r0.y
      add r2.xyz, r3.xyzx, r5.xyzx
      mad r0.yzw, r10.xxyz, r0.yyyy, r2.xxyz
      max r2.xyz, r0.yzwy, l(0.000000, 0.000000, 0.000000, 0.000000)
      mov r3.xy, vThreadID.xyxx
      mov r3.zw, l(0,0,5,5)
      mov r2.w, l(1.000000)
      store_uav_typed u0.xyzw, r3.xyzw, r2.xyzw
    else
      mov r2.xy, -r1.zxzz
      mov r2.zw, l(0,0,1.000000,-1.000000)
	  
	  // mad r2.z, r16.x, r17.w, r2.z
	  
      sample_l_indexable(texturecube)(float,float,float,float) r3.xyzw, r2.zxyz, t1.xyzw, s0, l(0.000000)
      dp3 r0.y, r2.xyzx, r2.xyzx
      rsq r0.y, r0.y
      mul r4.yzw, r0.yyyy, r2.xxyz
      ld_indexable(buffer)(uint,uint,uint,uint) r0.y, l(12, 12, 12, 12), t0.yxzw
      ld_indexable(buffer)(uint,uint,uint,uint) r5.y, l(13, 13, 13, 13), t0.yxzw
      ld_indexable(buffer)(uint,uint,uint,uint) r5.z, l(14, 14, 14, 14), t0.yzxw
      ld_indexable(buffer)(uint,uint,uint,uint) r5.w, l(15, 15, 15, 15), t0.yzwx
      ld_indexable(buffer)(uint,uint,uint,uint) r0.z, l(16, 16, 16, 16), t0.yzxw
      ld_indexable(buffer)(uint,uint,uint,uint) r6.y, l(17, 17, 17, 17), t0.yxzw
      ld_indexable(buffer)(uint,uint,uint,uint) r6.z, l(18, 18, 18, 18), t0.yzxw
      ld_indexable(buffer)(uint,uint,uint,uint) r6.w, l(19, 19, 19, 19), t0.yzwx
      ld_indexable(buffer)(uint,uint,uint,uint) r0.w, l(20, 20, 20, 20), t0.yzwx
      ld_indexable(buffer)(uint,uint,uint,uint) r7.y, l(21, 21, 21, 21), t0.yxzw
      ld_indexable(buffer)(uint,uint,uint,uint) r7.z, l(22, 22, 22, 22), t0.yzxw
      ld_indexable(buffer)(uint,uint,uint,uint) r7.w, l(23, 23, 23, 23), t0.yzwx
      ld_indexable(buffer)(uint,uint,uint,uint) r8.x, l(24, 24, 24, 24), t0.xyzw
      ld_indexable(buffer)(uint,uint,uint,uint) r8.y, l(25, 25, 25, 25), t0.yxzw
      ld_indexable(buffer)(uint,uint,uint,uint) r8.z, l(26, 26, 26, 26), t0.yzxw
      ld_indexable(buffer)(uint,uint,uint,uint) r8.w, l(27, 27, 27, 27), t0.yzwx
      ld_indexable(buffer)(uint,uint,uint,uint) r9.x, l(28, 28, 28, 28), t0.xyzw
      ld_indexable(buffer)(uint,uint,uint,uint) r9.y, l(29, 29, 29, 29), t0.yxzw
      ld_indexable(buffer)(uint,uint,uint,uint) r9.z, l(30, 30, 30, 30), t0.yzxw
      ld_indexable(buffer)(uint,uint,uint,uint) r9.w, l(31, 31, 31, 31), t0.yzwx
      ld_indexable(buffer)(uint,uint,uint,uint) r10.x, l(32, 32, 32, 32), t0.xyzw
      ld_indexable(buffer)(uint,uint,uint,uint) r10.y, l(33, 33, 33, 33), t0.yxzw
      ld_indexable(buffer)(uint,uint,uint,uint) r10.z, l(34, 34, 34, 34), t0.yzxw
      ld_indexable(buffer)(uint,uint,uint,uint) r10.w, l(35, 35, 35, 35), t0.yzwx
      ld_indexable(buffer)(uint,uint,uint,uint) r11.x, l(36, 36, 36, 36), t0.xyzw
      ld_indexable(buffer)(uint,uint,uint,uint) r11.y, l(37, 37, 37, 37), t0.yxzw
      ld_indexable(buffer)(uint,uint,uint,uint) r11.z, l(38, 38, 38, 38), t0.yzxw
      mad r5.x, r8.z, l(-0.333333343), r0.y
      mad r6.x, r9.z, l(-0.333333343), r0.z
      mad r7.x, r10.z, l(-0.333333343), r0.w
      mov r4.x, l(1.000000)
      dp4 r12.x, r5.xyzw, r4.xyzw
      dp4 r12.y, r6.xyzw, r4.xyzw
      dp4 r12.z, r7.xyzw, r4.xyzw
      mul r13.xyzw, r4.yzzw, r4.wyzz
      dp4 r14.x, r8.xyzw, r13.xyzw
      dp4 r14.y, r9.xyzw, r13.xyzw
      dp4 r14.z, r10.xyzw, r13.xyzw
      mul r0.y, r4.y, r4.y
      mad r0.y, r4.w, r4.w, -r0.y
      add r4.xyz, r12.xyzx, r14.xyzx
      mad r0.yzw, r11.xxyz, r0.yyyy, r4.xxyz
      max r4.xyz, r0.yzwy, l(0.000000, 0.000000, 0.000000, 0.000000)
      mov r4.w, l(1.000000)
      add r4.xyzw, -r3.xyzw, r4.xyzw
      mad r3.xyzw, r0.xxxx, r4.xyzw, r3.xyzw
      mov r4.xy, vThreadID.xyxx
      mov r4.zw, l(0,0,0,0)
      store_uav_typed u0.xyzw, r4.xyzw, r3.xyzw
      mov r0.y, l(-1.000000)
      mul r0.zw, r1.zzzx, l(0.000000, 0.000000, -1.000000, 1.000000)
	  
	  // mad r0.y, r16.x, r17.w, r0.y
	  // gun reflection
	  
      sample_l_indexable(texturecube)(float,float,float,float) r3.xyzw, r0.yzwy, t1.xyzw, s0, l(0.000000)
      dp3 r2.z, r0.yzwy, r0.yzwy
      rsq r2.z, r2.z
      mul r4.yzw, r0.zzwy, r2.zzzz
      mov r4.x, l(1.000000)
      dp4 r12.x, r5.xyzw, r4.xyzw
      dp4 r12.y, r6.xyzw, r4.xyzw
      dp4 r12.z, r7.xyzw, r4.xyzw
      mul r13.xyzw, r4.yzzw, r4.wyzz
      dp4 r14.x, r8.xyzw, r13.xyzw
      dp4 r14.y, r9.xyzw, r13.xyzw
      dp4 r14.z, r10.xyzw, r13.xyzw
      mul r2.z, r4.y, r4.y
      mad r2.z, r4.w, r4.w, -r2.z
      add r4.xyz, r12.xyzx, r14.xyzx
      mad r4.xyz, r11.xyzx, r2.zzzz, r4.xyzx
      max r4.xyz, r4.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
      mov r4.w, l(1.000000)
      add r4.xyzw, -r3.xyzw, r4.xyzw
      mad r3.xyzw, r0.xxxx, r4.xyzw, r3.xyzw
      mov r4.xy, vThreadID.xyxx
      mov r4.zw, l(0,0,1,1)
      store_uav_typed u0.xyzw, r4.xyzw, r3.xyzw
      mov r1.y, l(1.000000)
	  
	  // mad r1.x, r16.x, r17.w, r1.x
	  // reflection on gun
	  
      sample_l_indexable(texturecube)(float,float,float,float) r3.xyzw, r1.xyzx, t1.xyzw, s0, l(0.000000)
      dp3 r2.z, r1.xyzx, r1.xyzx
      rsq r2.z, r2.z
      mul r4.yzw, r1.yyzx, r2.zzzz
      mov r4.x, l(1.000000)
      dp4 r12.x, r5.xyzw, r4.xyzw
      dp4 r12.y, r6.xyzw, r4.xyzw
      dp4 r12.z, r7.xyzw, r4.xyzw
      mul r13.xyzw, r4.yzzw, r4.wyzz
      dp4 r14.x, r8.xyzw, r13.xyzw
      dp4 r14.y, r9.xyzw, r13.xyzw
      dp4 r14.z, r10.xyzw, r13.xyzw
      mul r1.z, r4.y, r4.y
      mad r1.z, r4.w, r4.w, -r1.z
      add r4.xyz, r12.xyzx, r14.xyzx
      mad r4.xyz, r11.xyzx, r1.zzzz, r4.xyzx
      max r4.xyz, r4.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
      mov r4.w, l(1.000000)
      add r4.xyzw, -r3.xyzw, r4.xyzw
      mad r3.xyzw, r0.xxxx, r4.xyzw, r3.xyzw
      mov r4.xy, vThreadID.xyxx
      mov r4.zw, l(0,0,2,2)
      store_uav_typed u0.xyzw, r4.xyzw, r3.xyzw
	  
	  // mad r0.w, r16.x, r17.w, r0.w
	  // no
	  
      sample_l_indexable(texturecube)(float,float,float,float) r3.xyzw, r0.wyzw, t1.xyzw, s0, l(0.000000)
      dp3 r1.z, r0.yzwy, r0.yzwy
      rsq r1.z, r1.z
      mul r4.yzw, r0.yyzw, r1.zzzz
      mov r4.x, l(1.000000)
      dp4 r12.x, r5.xyzw, r4.xyzw
      dp4 r12.y, r6.xyzw, r4.xyzw
      dp4 r12.z, r7.xyzw, r4.xyzw
      mul r13.xyzw, r4.yzzw, r4.wyzz
      dp4 r14.x, r8.xyzw, r13.xyzw
      dp4 r14.y, r9.xyzw, r13.xyzw
      dp4 r14.z, r10.xyzw, r13.xyzw
      mul r0.y, r4.y, r4.y
      mad r0.y, r4.w, r4.w, -r0.y
      add r4.xyz, r12.xyzx, r14.xyzx
      mad r4.xyz, r11.xyzx, r0.yyyy, r4.xyzx
      max r4.xyz, r4.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
      mov r4.w, l(1.000000)
      add r4.xyzw, -r3.xyzw, r4.xyzw
      mad r3.xyzw, r0.xxxx, r4.xyzw, r3.xyzw
      mov r4.xy, vThreadID.xyxx
      mov r4.zw, l(0,0,3,3)
      store_uav_typed u0.xyzw, r4.xyzw, r3.xyzw
      mov r1.w, r0.z
	  
	  // mad r1.x, r16.x, r17.w, r1.x
	  // affects reflection on gun
	  
      sample_l_indexable(texturecube)(float,float,float,float) r3.xyzw, r1.xwyx, t1.xyzw, s0, l(0.000000)
      dp3 r0.y, r1.xywx, r1.xywx
      rsq r0.y, r0.y
      mul r1.yzw, r0.yyyy, r1.wwyx
      mov r1.x, l(1.000000)
      dp4 r4.x, r5.xyzw, r1.xyzw
      dp4 r4.y, r6.xyzw, r1.xyzw
      dp4 r4.z, r7.xyzw, r1.xyzw
      mul r12.xyzw, r1.yzzw, r1.wyzz
      dp4 r13.x, r8.xyzw, r12.xyzw
      dp4 r13.y, r9.xyzw, r12.xyzw
      dp4 r13.z, r10.xyzw, r12.xyzw
      mul r0.y, r1.y, r1.y
      mad r0.y, r1.w, r1.w, -r0.y
      add r1.xyz, r4.xyzx, r13.xyzx
      mad r0.yzw, r11.xxyz, r0.yyyy, r1.xxyz
      max r1.xyz, r0.yzwy, l(0.000000, 0.000000, 0.000000, 0.000000)
      mov r1.w, l(1.000000)
      add r1.xyzw, -r3.xyzw, r1.xyzw
      mad r1.xyzw, r0.xxxx, r1.xyzw, r3.xyzw
      mov r3.xy, vThreadID.xyxx
      mov r3.zw, l(0,0,4,4)
      store_uav_typed u0.xyzw, r3.xyzw, r1.xyzw
	  
	  // mad r2.y, r16.x, r17.w, r2.y
	  // no
	  
      sample_l_indexable(texturecube)(float,float,float,float) r1.xyzw, r2.yxwy, t1.xyzw, s0, l(0.000000)
      dp3 r0.y, r2.xywx, r2.xywx
      rsq r0.y, r0.y
      mul r2.yzw, r0.yyyy, r2.xxwy
      mov r2.x, l(1.000000)
      dp4 r3.x, r5.xyzw, r2.xyzw
      dp4 r3.y, r6.xyzw, r2.xyzw
      dp4 r3.z, r7.xyzw, r2.xyzw
      mul r4.xyzw, r2.yzzw, r2.wyzz
      dp4 r5.x, r8.xyzw, r4.xyzw
      dp4 r5.y, r9.xyzw, r4.xyzw
      dp4 r5.z, r10.xyzw, r4.xyzw
      mul r0.y, r2.y, r2.y
      mad r0.y, r2.w, r2.w, -r0.y
      add r2.xyz, r3.xyzx, r5.xyzx
      mad r0.yzw, r11.xxyz, r0.yyyy, r2.xxyz
      max r2.xyz, r0.yzwy, l(0.000000, 0.000000, 0.000000, 0.000000)
      mov r2.w, l(1.000000)
      add r2.xyzw, -r1.xyzw, r2.xyzw
      mad r0.xyzw, r0.xxxx, r2.xyzw, r1.xyzw
      mov r1.xy, vThreadID.xyxx
      mov r1.zw, l(0,0,5,5)
      store_uav_typed u0.xyzw, r1.xyzw, r0.xyzw
    endif
  endif
endif
ret
// Approximately 0 instruction slots used
